﻿#ifndef GLWIDGET_H
#define GLWIDGET_H

#include <QOpenGLWidget>
#include <QOpenGLShaderProgram>
#include <QOpenGLFunctions_3_3_Core>
#include <QMatrix4x4>
#include <QTimer>

class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_Core
{
    Q_OBJECT

public:
    GLWidget(QWidget *parent = nullptr);
    ~GLWidget();

protected:
    void initializeGL() override;
    void resizeGL(int w, int h) override;
    void paintGL() override;

private:
    GLfloat angle; // 旋转角度
    QTimer *timer; // 定时器，用于更新旋转角度

    // 着色器程序
    QOpenGLShaderProgram program;

    // 顶点数据和颜色数据
    GLfloat vertices[9];
    GLfloat colors[9];

    // 顶点数组对象和顶点缓冲区对象
    GLuint vao;
    GLuint vbo[2];
};

#endif // GLWIDGET_H